home *** CD-ROM | disk | FTP | other *** search
/ Directorty Opus 5 - Magellan 2 / Opus 5 - Magellan 2.iso / Extras / wolledopus / dopus5 / modules / WolleCommands.dopus5
Text File  |  1997-11-17  |  7KB  |  211 lines

  1. /*
  2.  
  3. $VER: WolleCommands 1.0 (17.11.1997) © Marco Wollkopf
  4. E-Mail: Marco.Wollkopf@t-online.de
  5. Homepage: http://home.t-online.de/home/Marco.Wollkopf
  6.  
  7.  
  8. fügt neue interne Befehle zu DOpus hinzu
  9.  
  10. bitte nach DOpus5:Modules/ kopieren.
  11. benötigt mindestens DOpus 5.62+
  12.  
  13. =========================================================================================
  14.  
  15. SelectSame: Selektiert im Quellister Einträge, die im Quell- und Ziellister vorhanden sind.
  16.             Funktioniert nur im Quellister und nur wenn ein Quell- und ein Ziellister
  17.             vorhanden sind!
  18.             
  19.             Optionen: DIRS/S,FILES/S,ALL/S,SIZE/S,VERSION/S,DATE/S,COMMENT/S
  20.             
  21.             DIRS:    es werden nur Verzeichnisse verglichen
  22.             FILES:   es werden nur Dateien verglichen
  23.             ALL:     alle Einträge werden verglichen, kann auch weggelassen werden
  24.   
  25.                       Die folgenden Optionen können auch kombiniert werden:
  26.                         SIZE:    Dateigröße muß auch übereinstimmen
  27.                         VERSION: Dateiversion muß auch übereinstimmen
  28.                         DATE:    Dateidatum-, und Zeit muß auch übereinstimmen
  29.                         COMMENT: Dateikommentar muß auch übereinstimmen           
  30.             
  31. toUpper:        Wandelt alle selektierten Datei- und Verzeichnisnamen im Quellister in
  32.                         Großbuchstaben. Der Befehl funktioniert nur im Quellister.
  33.                         
  34.                         --- Müssen Sonderzeichen (äöü...) umgewandelt werden funktioniert dieser
  35.                         Befehl nicht, die Datei landet im Nirvana!!! Bitte den erscheinenden
  36.                         Requester mit Auslassen oder Abbruch bestätigen. ---
  37.                         Es ist scheinbar aber kein Fehler in meinem Modul, da mit dem DOpus-Rename
  38.                         Befehl der gleiche Fehler auftritt.
  39.                         
  40. toLower:        Wandelt alle selektierten Datei- und Verzeichnisnamen im Quellister in
  41.                         Kleinbuchstaben. Der Befehl funktioniert nur im Quellister.
  42.                         
  43.                         --- Probleme mit Sonderzeichen siehe toUpper. ---
  44.                         
  45. =========================================================================================
  46.  
  47. */
  48.  
  49. parse arg portname function source dest arg1
  50. address value portname
  51. options results
  52.  
  53.  
  54. /* --- Initialise --- */
  55.  
  56. if function='init' then do
  57.     dopus command "SelectSame" program "WolleCommands" desc "'Selektiert gleiche Einträge'" 'source dest' template "DIRS/S,FILES/S,ALL/S,SIZE/S,VERSION/S,DATE/S,COMMENT/S"
  58.     dopus command "toUpper" program "WolleCommands" desc "'Einträge Großschreiben'" 'source'
  59.     dopus command "toLower" program "WolleCommands" desc "'Einträge Kleinschreiben'" 'source'
  60. exit
  61. end
  62.  
  63. /* ------------------------------ */
  64.  
  65.  
  66. /* --- SelectSame V1.1 --- */
  67.  
  68.  
  69. if function='SelectSame' then do
  70.  
  71. /* -- abfangen wenn kein quell oder kein ziel -- */
  72. if source = 0 | dest = 0 then do
  73.   dopus request "'Der Befehl SelectSame funktioniert nur wenn"||D2C(10)||"ein Quell- und ein Ziellister vorhanden sind."||D2C(10) D2C(10)||"Er funktioniert nicht wenn er aus dem Ziellister aufgerufen wird.'"
  74.   exit
  75. end
  76.  
  77. /* -- lister busy --*/
  78. lister set source busy on wait
  79. lister set dest busy on wait
  80.  
  81. /* -- argumente auswerten, auszuwählende einträge --*/
  82. if arg1 ~= "" then do
  83.         if arg1 ~= "" then ein = entries
  84.     if index(upper(arg1),'FILES') ~= 0 then ein = files
  85.     if index(upper(arg1),'DIRS') ~= 0 then do 
  86.         if index(upper(arg1),'FILES') ~= 0 then ein = entries
  87.             else ein = dirs
  88.             end
  89.     if index(upper(arg1),'ALL') ~= 0 then ein = entries
  90. end
  91. else ein = entries
  92.  
  93. /* -- quelle alles deselektieren -- */
  94. lister query source entries stem Files
  95. DO c=0 TO Files.count-1
  96.   lister select source '"'Files.c'"' OFF
  97. end
  98. lister refresh source full
  99.  
  100. /* -- quelle gleiches selektieren -- */
  101. lister query dest ein stem Files
  102. DO c=0 TO Files.count-1
  103.   lister select source '"'Files.c'"' ON
  104. end
  105.  
  106.  
  107. lister query source selentries stem select
  108. do c=0 to select.count-1
  109.     lister query source entry select.c stem sinfo
  110.     lister query dest entry select.c stem dinfo
  111.     if sinfo.type ~= dinfo.type then lister select source '"'select.c'"' off /* eintragstyp */
  112.  
  113.     if index(upper(arg1),'SIZE') ~= 0 then do                                /* eintragsgröße */
  114.         if sinfo.size ~= dinfo.size then lister select source '"'select.c'"' off    
  115.     end
  116.     if index(upper(arg1),'VERSION') ~= 0 then do                             /* eintragsversion */
  117.         if sinfo.version ~= dinfo.version then lister select source '"'select.c'"' off    
  118.     end    
  119.     if index(upper(arg1),'DATE') ~= 0 then do                                /* eintragsdatum */
  120.         if sinfo.datestring ~= dinfo.datestring then lister select source '"'select.c'"' off
  121.     end    
  122.     if index(upper(arg1),'COMMENT') ~= 0 then do                             /* eintragskommentar */
  123.         if sinfo.comment ~= dinfo.comment then lister select source '"'select.c'"' off
  124.     end    
  125.  
  126. end
  127.  
  128. lister refresh source full
  129.  
  130. /* -- lister busy off --*/
  131. lister set source busy off
  132. lister set dest busy off    
  133.  
  134. /* -- request gefundene einträge -- */
  135. lister query source numselentries
  136. if result = 0 then
  137.   dopus request "'keine gleichen Einträge gefunden'"
  138. else
  139.   dopus request "'Es wurden "||result||" gleiche Einträge gefunden'"
  140. exit
  141. end
  142.  
  143. /* ------------------------------ */
  144.  
  145. /* --- toUpper V0.98---*/
  146.  
  147. if function='toUpper' then do
  148.     if source = 0 THEN DO
  149.         DOPUS REQUEST "'es ist kein Quellister vorhanden'"
  150.         exit
  151.     END
  152.     lister query source selentries stem files.
  153.     
  154.     if files.count = 0 then do
  155.         dopus request "'keine Einträge angewählt'"
  156.         exit
  157.     end
  158.     
  159.     lister query source path
  160.     pfad = result
  161.     lister set source busy on wait
  162.     lister set source case on wait
  163.     do c=0 to files.count-1
  164.     files.c = translate(files.c,xrange('À','Ý'),xrange('à','ý'))
  165.         command wait rename '"'||pfad||files.c||'"' '"'||pfad||translate(files.c,xrange('A','Z'),xrange('a','z'))||'"'
  166.         lister select source '"'||files.c||'"' off
  167.         lister reload source '"'||files.c||'"'
  168.         lister refresh source
  169.     end
  170.     lister set case off wait
  171.     lister set busy off
  172.     lister refresh source
  173. exit
  174. end
  175.  
  176. /* ------------------------------ */    
  177.  
  178.  
  179. /* --- toLower V0.98--- */
  180.  
  181. if function='toLower' then do
  182.     if source = 0 THEN DO
  183.         DOPUS REQUEST "'es ist kein Quellister vorhanden'"
  184.         exit
  185.     END
  186.     lister query source selentries stem files.
  187.     
  188.     if files.count = 0 then do
  189.         dopus request "'keine Einträge angewählt'"
  190.         exit
  191.     end
  192.     
  193.     lister query source path
  194.     pfad = result
  195.     lister set source busy on wait
  196.     lister set source case on wait
  197.     do c=0 to files.count-1
  198.         files.c = translate(files.c,xrange('à','ý'),xrange('À','Ý'))
  199.         command wait rename '"'||pfad||files.c||'"' '"'||pfad||translate(files.c,xrange('a','z'),xrange('A','Z'))||'"'
  200.         lister select source '"'||files.c||'"' off
  201.         lister reload source '"'||files.c||'"'
  202.         lister refresh source
  203.     end
  204.     lister set source case off wait
  205.     lister set busy off
  206.     lister refresh source
  207. exit
  208. end
  209.  
  210. /* ------------------------------ */
  211.